package com.yonyou.cyxdms.sysAuth.service.dto.user;

import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;
import com.yonyou.cyx.framework.bean.entity.base.BasePO;
import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.yonyou.cyx.function.utils.jsonserializer.JSONUtil;

import java.io.Serializable;

/**
 * <p>
 * 人员信息表
 * </p>
 *
 * @author zhangxianchao
 * @since 2018-09-13
 */

public class EmpDTO extends BaseDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 人员ID
     */
    private Long empId;
    /**
     * 公司Code
     */
    private String appId;
    /**
     * 姓名
     */
    private String employeeName;
    /**
     * 员工编号
     */
    private String employeeNo;
    /**
     * 性别
     */
    private Integer gender;
    /**
     * E_MAIL
     */
    private String eMail;
    /**
     * 邮编
     */
    private String zipCode;
    /**
     * 身份证号
     */
    private String identifyId;
    /**
     * 手机号
     */
    private String mobilePhone;
    private String address;
    /**
     * 婚姻状况
     */
    private Integer marriageStatus;
    /**
     * 照片
     */
    private Integer photos;
    /**
     * 备注
     */
    private String remark;
    /**
     * QQ
     */
    private String qq;
    /**
     * 微信
     */
    private String wechat;
    /**
     * 毕业院校
     */
    private String university;
    /**
     * 籍贯
     */
    private String nativePlace;
    /**
     * 户口
     */
    private String registered;
    /**
     * 培训认证信息
     */
    private String authentication;
    /**
     * 是否有效
     */
    private Integer validStatus;
    private String sourceChangedAt;
    /**
     * 民族
     */
    private String nation;
    /**
     * 驾驶证级别
     */
    private String drivingLevel;
    /**
     * 教育程度
     */
    private Integer degreeEdu;
    /**
     * 年龄
     */
    private Integer age;
    /**
     * 汽车行业时长（年）
     */
    private Integer autoTime;
    /**
     * 是否校企合作院校毕业
     */
    private Integer cooperationSchool;
    /**
     * 毕业院校
     */
    private String graduateSchool;

    /*
    * 身份证号 （与EmpPo字段保持统一）
    * */
    private String certificateId;


    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getDrivingLevel() {
        return drivingLevel;
    }

    public void setDrivingLevel(String drivingLevel) {
        this.drivingLevel = drivingLevel;
    }

    public Integer getDegreeEdu() {
        return degreeEdu;
    }

    public void setDegreeEdu(Integer degreeEdu) {
        this.degreeEdu = degreeEdu;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Integer getAutoTime() {
        return autoTime;
    }

    public void setAutoTime(Integer autoTime) {
        this.autoTime = autoTime;
    }

    public Integer getCooperationSchool() {
        return cooperationSchool;
    }

    public void setCooperationSchool(Integer cooperationSchool) {
        this.cooperationSchool = cooperationSchool;
    }

    public String getGraduateSchool() {
        return graduateSchool;
    }

    public void setGraduateSchool(String graduateSchool) {
        this.graduateSchool = graduateSchool;
    }

    public EmpDTO() {
        super();
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getSourceChangedAt() {
        return sourceChangedAt;
    }

    public void setSourceChangedAt(String sourceChangedAt) {
        this.sourceChangedAt = sourceChangedAt;
    }

    public Long getEmpId() {
        return empId;
    }


    public void setEmpId(Long empId) {
        this.empId = empId;
    }

    public String getEmployeeNo() {
		return employeeNo;
	}

	public void setEmployeeNo(String employeeNo) {
		this.employeeNo = employeeNo;
	}

	public String getEmployeeName() {
        return employeeName;
    }


    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }


    public Integer getGender() {
        return gender;
    }


    public void setGender(Integer gender) {
        this.gender = gender;
    }


    public String geteMail() {
        return eMail;
    }


    public void seteMail(String eMail) {
        this.eMail = eMail;
    }


    public String getZipCode() {
        return zipCode;
    }


    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }


    public String getIdentifyId() {
        return identifyId;
    }


    public void setIdentifyId(String identifyId) {
        this.identifyId = identifyId;
    }


    public String getMobilePhone() {
        return mobilePhone;
    }


    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }


    public String getAddress() {
        return address;
    }


    public void setAddress(String address) {
        this.address = address;
    }


    public Integer getMarriageStatus() {
        return marriageStatus;
    }


    public void setMarriageStatus(Integer marriageStatus) {
        this.marriageStatus = marriageStatus;
    }


    public Integer getPhotos() {
        return photos;
    }


    public void setPhotos(Integer photos) {
        this.photos = photos;
    }


    public String getRemark() {
        return remark;
    }


    public void setRemark(String remark) {
        this.remark = remark;
    }


    public String getQq() {
        return qq;
    }


    public void setQq(String qq) {
        this.qq = qq;
    }


    public String getWechat() {
        return wechat;
    }


    public void setWechat(String wechat) {
        this.wechat = wechat;
    }


    public String getUniversity() {
        return university;
    }


    public void setUniversity(String university) {
        this.university = university;
    }


    public String getNativePlace() {
        return nativePlace;
    }


    public void setNativePlace(String nativePlace) {
        this.nativePlace = nativePlace;
    }


    public String getRegistered() {
        return registered;
    }


    public void setRegistered(String registered) {
        this.registered = registered;
    }


    public String getAuthentication() {
        return authentication;
    }


    public void setAuthentication(String authentication) {
        this.authentication = authentication;
    }


    public Integer getValidStatus() {
        return validStatus;
    }


    public void setValidStatus(Integer validStatus) {
        this.validStatus = validStatus;
    }

    public String getCertificateId() {
        return certificateId;
    }

    public void setCertificateId(String certificateId) {
        this.certificateId = certificateId;
    }

    @Override
    public String toString() {
        return JSONUtil.objectToJson(this);
    }

    /**
     * 将DTO 转换为PO
     * //对某个对象属性进行赋值
     * //BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
     *
     * @param poClass dto 需要转换的dto
     * @author zhangxianchao
     * @since 2018/7/22 0022
     */
    @Override
    public <T extends BasePO> T transDtoToPo(Class<T> poClass) {
        return super.transDtoToPo(poClass);
    }

    /**
     * 将DTO 转换为PO
     * //BeanMapperUtil.populateValueByMethod(transPO,"setXxx",this.getXxx);
     *
     * @param po 需要转换的对象
     * @author zhangxianchao
     * @since 2018/7/22 0022
     */
    public <T extends BasePO> void transDtoToPo(T po) {
        BeanMapperUtil.copyProperties(this, po, "empId");
    }

}
